// 解构赋值允许默认值

let [foo = true] = [];
console.log(foo)// true

let [x1, y1 = 'b'] = ['a']; // x1='a', y1='b'
let [m, n= 'b'] = ['a', undefined]; // m='a',n='b'

let [a = 1] = [undefined];
x // 1
// 只有当一个数组成员严格等于undefined，默认值才会生效。
let [b = 1] = [null];
x // null
// 默认值是一个表达式
function f() {
    console.log('aaa');
  }

  let [z = f()] = [1];//z 1
  let  [x = 1, y = x] = [];     // x=1; y=1
//let [x = 1, y = x] = [2];    // x=2; y=2
//let [x = 1, y = x] = [1, 2]; // x=1; y=2
//let [x = y, y = 1] = [];// 报错
